The simulation of a semiconductor chip is an effort to calculate, predict, and verify the functionality and performance of a semiconductor integrated circuit chip produced in an integrated manufacturing process using various mathematical models on a computer. In particular, designing an analog integrated circuit of a semiconductor chip mainly involves calculating, predicting, and verifying the functionality and performance of the analog circuit, which deals with continuously changing quantities such as charges, voltages, and currents on a continuous time axis.
The calculation, prediction, and verification of the functionality and performance of the analog circuit are performed on a computer simulation platform. The simulation platform includes several basic elements: a simulation test circuit (Testbench), a simulation software tool (Simulator), and a process model (Model).
The simulation test circuit is a test circuit that is set up by a circuit designer according to a performance simulation requirement, and is made up of a device under test (Device Under Test, DUT), a stimulus circuit (Stimulus), and a related signal processing circuit.
Analog circuit simulation software tools are mainly provided by electronic design automation (Electronic Design Automation, EDA) tool vendors. The typical commercial software tools are Spectre from Cadence U.S.A, Eldo from Mentor Graphics U.S.A, and Hspice from Synopsys U.S.A, etc.
Process models are mainly provided by the major semiconductor line manufacturers in the form of Spice-type device models that are interpretable to simulators. Under the globally prevalent fabless chip design business model, chip is mainly fabricated by a few wafer production line foundries in the world, for example, TSMC (Taiwan Semiconductor Manufacturing Co., Ltd.), SMIC (Semiconductor Manufacturer International Corporation Co., Ltd.), UMC (United Microelectronics Corporation), and GlobalFoundries, etc. A process model mainly consists of a set of parameterized semiconductor device mathematical models. The parameterized mathematical models simulate physical response characteristics of a semiconductor device itself under an input parameter condition, for example, with respect to a MOS transistor, how much current will pass through a MOS transistor of a certain channel size when a bias voltage of each electrode is set to a state.
Specifically, when performing simulation, a designer needs to first choose a process model on the simulation platform, for example, to select a suitable device model within the process. For an analog integrated circuit, it is not only necessary to care about a performance response of the integrated circuit under a typical process condition, but also necessary to pay attention from a perspective of statistics, to the performance responses and their statistical distribution under extreme circumstances of fluctuations of process, that is, yield. A common practice in the industry is that when foundries develop process models of their semiconductor production process, the process models are grouped into several process corners according to various extreme conditions. For example, the models of conventional complementary metal-oxide-semiconductor processes, namely, CMOS processes, are grouped as typical process (typical), fast-NMOS fast-PMOS process (fast-N fast-P), slow-NMOS slow-PMOS process (slow-N slow-P), fast-NMOS slow-PMOS process (fast-N slow-P), and slow-NMOS fast-PMOS process (slow-N fast-P). Each of the latter four corresponds, respectively, to the extreme cases of device model parameter fluctuation caused by the doping fluctuations of N-type impurities and P-type impurities. Therefore, when choosing simulation models, the designer needs to respectively choose the parameter values corresponding to process corners. Up to now, a general practice in the industry is that every time when a process corner is replaced, it is necessary to manually configure the model setting to a parameter set of each process corner in a design tool before a simulation can be performed. Thus, simulations can be performed for different process corners respectively. A problem of this practice is low efficiency. Simulating across different process corners is very time- and energy-consuming, which affects the progress of product development.
In addition, the foregoing simulation method is to perform calculation on each of the performance specifications to be verified under each process corner condition, and to obtain a waveform chart where the independent variables defined in the simulation setting (for example, temperature, time, and current) are used as horizontal coordinate axis, and the dependent variables (for example, impedance, gain, bandwidth, and noise) of circuit performance responses selected in the simulation setting are used as vertical coordinate axis. Since the waveform charts obtained under various process corner conditions are different from one another, in order to compare and analyze the differences of a dependent variable value under various process corner conditions, it is necessary to superpose the response waveform charts of the same dependent variable into one coordinate system, and select the data points on the waveforms of the same dependent variable under different process corner conditions and corresponding to the same value of the same independent variable, and then set up a coordinate system where the process corners are used as horizontal coordinate axis and the response values of the dependent variable are used as vertical coordinate axis, and plot the data points in the coordinate system for the response values of the dependent variable under various process corner conditions respectively, thereby obtaining a curve chart of the selected dependent variable that varies with process corners.
The foregoing method of data consolidation, processing, and analysis is not only time-consuming, but also requires large memory support, therefore, is always a bottleneck in design progress, and thus becomes a defect in design methodology.
A scripting language, OCEAN, which is capable of invoking and controlling a simulator (for example, Spectre) is provided in an analog integrated circuit simulation software tool from Cadence. OCEAN provides a simple easy-to-use script environment interfacing between a simulator and a design task. For example, in an OCEAN script file, a simulator, a simulation data storage path, a simulation model file name, simulation analysis and circuit design variables, etc. are set in sequence, and a simulation job may be started directly by running this OCEAN file. A loop statement of OCEAN may be used to sequentially set up and replace device model files required by each process corner for each iteration, so that the performance responses of the circuit of different process corners are simulated.
The OCEAN script in essence is to sequentially start different simulation jobs; each of the jobs individually performs simulation of each process corner. The generated data must be respectively stored in different file paths; otherwise, the data of the previously simulation runs are overwritten. Because simulation can be automatically started, this method may be used to improve design efficiency. However, because simulation of each process corner is still not completed in a same simulation job, an objective of drawing response values of a dependent variable in one waveform chart using process corners as the horizontal coordinates is not achieved.
As a leading EDA solution provider in the industry, Cadence provides an analog integrated circuit simulation platform, Virtuoso, which provides an Analog Artist simulation environment with a graphical interface. In this graphical interface, different process corners are arranged in the form of user-defined design variables in a table along with other design variables. Process corner files provided by a foundry may also be combined with other design variables of extreme values into new process corners. Although this method seems to be implemented in a different manner from the OCEAN script technology, it in essence is still merely to solve the problem of automatically starting simulation of each process corner. However, parameter values of each process corner cannot be automatically taken into a parameter-sweeping style simulation job, that is, a waveform of the performance response values of a dependent variable cannot be obtained in a same coordinate system with process corner as an independent variable.
Using different script technologies to link simulation jobs that otherwise run one-by-one has become a practice for improving simulation efficiency in the industry. Up to now, all these script technologies only solve this problem from a perspective of automatically starting simulation jobs. Indeed, automatically starting simulation jobs by means of coordinating, and waiting to hand-shake between jobs, etc. still cannot ultimately solve the problem of continuously sweeping process corners in a simulation job. Only by sweeping each process corner within one simulation job, can a much desired waveform of performance responses of a dependent variable with respect to process corners be drawn along a horizontal axis in the same graph where process corners are used as an independent variable.